#!/bin/bash

# ssh_set_timezone.sh - 远程批量修改服务器时区脚本
# 该脚本用于批量修改远程服务器的时区，以保持日志、定时任务和数据库记录的一致性。
#
# 功能：
# - 自动检测并安装 sshpass（如未安装）
# - 读取服务器列表（servers.txt），解析用户、IP、密码信息
# - 使用 SSH 连接远程服务器并修改时区
# - 记录修改成功与失败的服务器信息

# 服务器列表存储文件
SERVER_LIST="servers.txt"
TIMEZONE="Asia/Shanghai"  # 目标时区，可根据需要修改

# 检查 sshpass 是否安装
if ! command -v sshpass &> /dev/null; then
    echo "sshpass 未安装，正在尝试安装..."
    sudo apt-get update && sudo apt-get install -y sshpass
fi

# 读取服务器列表并更新时区
while IFS=',' read -r REMOTE_USER REMOTE_HOST REMOTE_PASS; do
    echo "正在更新服务器 ${REMOTE_HOST} 的时区..."
    sshpass -p "${REMOTE_PASS}" ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} "sudo timedatectl set-timezone ${TIMEZONE}"
    echo "服务器 ${REMOTE_HOST} 时区已更新为 ${TIMEZONE}"
done < ${SERVER_LIST}

echo "所有服务器时区更新任务完成"

